home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / typedmodulesv40.readme < prev    next >
Text File  |  1995-04-08  |  4KB  |  80 lines

  1. Short: Typed Modules (V40) for Amiga E
  2. Author: m88jrh@ecs.ox.ac.uk (Jason R. Hulance)
  3. Uploader: m88jrh@ecs.ox.ac.uk (Jason R. Hulance)
  4.  
  5. This archive contains typed modules created from the V40 Amiga includes.
  6. They differ from the standard modules in that they enable multiple
  7. dereferencing of system objects without requiring repeated "::<type>".
  8. For instance, to access the signal bit of a window's message port you can
  9. now type:
  10.  
  11.    win.userport.sigbit      and  win.rport.layer.scroll_x
  12.  
  13. instead of:
  14.  
  15.    win.userport::mp.sigbit  and  win.rport::rastport.layer::layer.scroll_x
  16.  
  17. (Note: You are still required to include the module for any object
  18. referred to in this way.)  A bonus is that the sources show the dependencies
  19. of the modules.  For instance, 'graphics/layers' depends on 'exec/lists',
  20. 'exec/semaphores' and 'graphics/clip'.  This is a short list to search for
  21. the definition of 'layer' (which is in 'graphics/clip', quite surprisingly).
  22.  
  23. Again, the names used conform to the standard modules (where possible) and
  24. these are based on the Assembly includes.  This means that you still need to
  25. be aware of the differences in names from the C includes.
  26.  
  27. A number of useful (standard) macros have been added, e.g., ITEMNUM() from
  28. 'intuition/intuition'.  To use these you must specify "OPT PREPROCESS" in
  29. your source file.
  30.  
  31. The library modules for all of the V40 system libraries are included.
  32. Note that this *includes* those for the built-in libraries: 'dos', 'exec',
  33. 'graphics' and 'intuition'.  This is a stop-gap feature since EC v3.1a does
  34. not contain any V40 function calls (but v3.2a probably will).  Use these
  35. four modules at your own risk!  (They seem to behave correctly...)
  36.  
  37. Some of the problems highlighted in the previous (V39) release have been
  38. solved by manipulation of the module files.  This means that, once again,
  39. you *CANNOT* recreate the modules from the sources.  The sources are purely
  40. for reference.  The problems solved are: unions and misaligned elements.
  41.  
  42. There are three badly aligned elements in the standard includes, which are
  43. caused by odd sized CHAR arrays.  Two are in the 'countryprefs' object in
  44. 'prefs/locale' (which cause a number of the following elements to be badly
  45. aligned, too), and one is in the 'conunit' object of 'devices/conunit'.
  46. The changes made to these modules are completely transparent.
  47.  
  48. There are a number of unions in the includes.  One example is the
  49. 'printerdata' object of 'devices/prtbase', in which "s0:ioextser" is
  50. unioned with "p0:ioextpar", presumably because your printer may be
  51. connected to your serial or parallel port.  (In fact, this object has
  52. incorrect offsets in the standard modules.)
  53.  
  54. Unions have been admitted by fiddling the module file (in a safe way).
  55. The one disadvantage is that creating an object-typed list for an object
  56. that contains a union is probably undefined now (at least, I can't
  57. guarantee what would happen).  This may not be a great problem as a lot of
  58. these objects contain nested object instances (e.g., an element "x:obj")
  59. which means an object-typed list cannot be created anyway.  The complete
  60. list of objects which have unions is:
  61.  
  62.     Module           Object
  63.     ------------------------------
  64.     dos/dosextens    dospacket
  65.     dos/dosextens    doslist
  66.     dos/notify       notifyrequest
  67.     exec/memory      me
  68.     exec/tasks       tc
  69.     graphics/copper  copins
  70.  
  71. These E modules and sources are Copyright (C) 1994-1995, Jason R. Hulance.
  72. The original C and Assembly includes are Copyright (C) 1985-1992,
  73. Commodore-Amiga Inc.
  74.  
  75. Wouter van Oortmerssen is free to do what he likes with all this.  Everyone
  76. else must adhere to the usual Freeware conditions.  In particular, you are
  77. free to use these modules to create your programs (whether they are freeware
  78. or commercial), but if you wish to distribute any part of this archive you
  79. must include it all, unmodified, and with this "readme" file.
  80.